Functional programming and erratic non-determinism

نویسنده

  • Corin Pitcher
چکیده

Non-deterministic programs can represent specifications, and non-determinism arises naturally in concurrent programming languages. In this dissertation, λ-calculi exhibiting erratic nondeterminism are studied in order to identify definitions and techniques that may be applicable to higher-order programming languages for specification or concurrency. The non-deterministic λ-calculi arise as fragments of an infinitary, non-deterministic λ-calculus L with countably indexed erratic choice. The operational semantics for L induces a uniform operational semantics upon each fragment, facilitating arguments that apply to different nondeterministic λ-calculi. The behaviour of programs in each fragment is abstracted to a form of labelled transition system with divergence called a typed transition system. Several applicative similarity and bisimilarity relations are defined upon the states of each typed transition system, including the fragments. Examples that distinguish the relations are constructed in a simple typed transition system S and are later shown to have analogues in non-deterministic λ-calculi. Maps that preserve and reflect the structure of typed transition systems are investigated because they reflect the finest relation, convex bisimilarity, and it is proven that there is a map to S from every typed transition system satisfying a mild condition. Using operational techniques, the lower, upper, and convex variants of similarity are shown to be compatible and to satisfy the Scott induction principle for every fragment. In addition, the other relations are compatible for a useful collection of fragments. Relative definability of non-deterministic programs is considered with respect to convex bisimilarity, and a chain of fragments is presented for which the corresponding chain of convex bisimilarity relations are related by strict inclusions, i.e., more expressive forms of erratic non-determinism distinguish terms that cannot be distinguished by less expressive forms of erratic non-determinism.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A Lambda-Calculus with letrec, case, constructors and non-determinism

A non-deterministic call-by-need lambda-calculus λndlr with case, constructors, letrec and a (non-deterministic) erratic choice, based on rewriting rules is investigated. A standard reduction is defined as a variant of left-most outermost reduction. The semantics is defined by contextual equivalence of expressions instead of using αβ(η)-equivalence. It is shown that several program transformati...

متن کامل

Similarity and Bisimilarity for Countable Non-Determinism and Higher-Order Functions

This paper investigates operationally based theories of a simply typed functional programming language with countable non determinism The theories are based upon lower upper and convex variants of applicative similarity and bisimilarity and the main result presented here is that these relations are compatible The di erences between the relations are illustrated by simple examples and their con ...

متن کامل

Non-Determinism in a Functional Setting

The pure untyped Lambda Calculus augmented with an (erratic) choice operator is considered as an idealised non-deterministic functional language. Both the \may" and the \must" modalities of convergence are of interest to us. Following Abramsky's work on domain theory in logical form, we identify the deno-tational type that captures our computational situation: = P ! ] ? ] where P?] is the Plotk...

متن کامل

Non-deterministic Böhm trees

Lambda calculus is well established as the formal model of functional programming. Non-determinism is an interesting conceptual issue, often considered in process-calculi. It is interesting to mix lambda-calculus and non-determinism, firstly because programmers use functional programming but also concurrent methods, networks and multi-users systems, secondly as a step towards more complex langu...

متن کامل

Exploring Non-Determinism in Graph Algorithms

Graph algorithms that are based on the computation of one or more paths are often written in an implicitly non-deterministic way, which suggests that the result of the algorithm does not depend on a particular path, but any path that satisfies a given property. Such algorithms provide an additional challenge in typical implementations, because one needs to replace the non-determinism with an ac...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2001